In recent years, network business circles have focused their attentions on Software Defined Networking (SDN). According to the SDN, software called a controller concentrically controls and manages the whole network. This configuration aims at enhancing programmability of the network and attaining automation of control.
The SDN adopts a centralized control model based on the controller. Namely, the controller receives connections of a plurality of switches and controls operations of the respective switches according to a control protocol. Therefore, performance of the controller tends to easily become a bottleneck of the whole system. Such being the case, it is considered to improve scalability of a network system (a distributed controller system) using a distributed controller configured so that plural controllers are coordinated with each other to attain the logically centralized control, though a physical configuration is, e.g., a distributed configuration based on a plurality of servers.
In the distributed controller, a process for controlling the operation of the switch is separated into a controller process and an application process, in which the controller and the application transfer and receive information via a messaging system. In this type of distributed controllers, the controller process and the application process are loose-coupled via the messaging system. Therefore, these distributed controllers are called “loose-coupling type distributed controllers” as the case may be. The distributed controllers enable each of the controller and the application to be scaled out solely. In the following discussion, the controller process is simply referred to as the controller, and the application process is also simply referred to as the application as the case may be.
The messaging system uses a message queue server (abbreviated to the MQ server) including a plurality of queues to store the information transferred and received between the controllers and the applications. In the MQ server, the queue is provided on a per process basis. As described above, the distributed controllers include the controllers and the applications as the processes. Hence, the MQ server includes the queue generated per application and the queue generated per controller. Each queue stores a message addressed to the associated process (the application or the controller).
For more information, see Japanese Patent Laid-Open Publication No. 07-200494.
In the distributed controllers (the related technology) described above, the number of the applications and the number of the controllers increase or decrease due to scale-out or scale-in or due to occurrence of a failure as the case may be. Further, it is considered in the distributed controllers that a throughput of the whole system is improved by increasing the number of the processes (the controllers, the applications). Thus, the related technology assumes that the number of the processes (the controllers, the applications) is increased or decreased.
In the related technology, however, as described above, the queue is generated on the per process basis. Therefore, for example, when the number of the controllers is increased or decreased, such a state occurs that a certain controller executes an irregular process of obtaining not only information stored in the queue associated with the controller itself but also information stored in the queue associated with another controller other than the controller. Thus, the related technology has a problem that the process of reading the information from the queue and transmitting the readout information to the controller becomes complicated in order to be flexible to an occasion of increasing or decreasing the number of the controllers.
Moreover, when there is a plurality of applications for executing a certain process for load sharing of a certain process, the controller grasps the number of the applications capable of executing a certain process and allocates the information in distribution to the plurality of queues associated with the plurality of applications. Thus, the related technology has a problem that the process of accumulating the information in the queue becomes complicated on the occasion of accumulating the information in the queue because of taking account of the number of destinations to which the information given from the queue is allocated.
As described above, the related technology has the problem that the queue related process becomes complicated, such as the process of reading the information from the queue and transmitting the readout information and the process of accumulating the information in the queue, in order to be flexible to the increase or decrease of the processes (the controllers, the applications).